"""
向量模型模块

提供统一的向量模型接口，支持多种向量模型提供商。
采用策略模式设计，可以根据emb_code动态路由到不同的实现类。

支持的模型：
- 智谱AI: zhipu-embedding-2, zhipu-embedding-3, text-embedding-3-large, text-embedding-3-small

使用示例：
    from emb import create_embedding_model, get_supported_models
    
    # 创建智谱AI向量模型
    model = create_embedding_model(
        "text-embedding-3-large", 
        api_key="your_api_key"
    )
    
    # 获取文本向量
    vector = model.get_emb("这是一个测试文本")
    
    # 批量处理
    vectors = model.encode(["文本1", "文本2", "文本3"])
    
    # 查看支持的模型
    supported = get_supported_models()
"""

from .BaseEmb import BaseEmb, EmbeddingError, ConfigurationError, ModelNotFoundError
from .EmbFactory import (
    EmbFactory,
    create_embedding_model,
    get_supported_models,
    test_embedding_model
)
from .ZhiPuEmb import ZhiPuEmb

__version__ = "1.0.0"

__all__ = [
    # 基类和异常
    "BaseEmb",
    "EmbeddingError",
    "ConfigurationError",
    "ModelNotFoundError",

    # 具体实现类
    "ZhiPuEmb",

    # 工厂类和便捷函数
    "EmbFactory",
    "create_embedding_model",
    "get_supported_models",
    "test_embedding_model",
]
